"""
工厂模式
======================================
- 什么是工厂模式
将对象的创建由使用原生类本身创建，转换到由特定的工厂方法来创建
======================================
- 好处
1. 大批量创建对象时有统一的入口，易于代码维护
2. 当发生修改，仅修改工厂类的创建方法即可
3. 符合现实世界的模式，即由工厂来制作产品
"""


class Person:
    pass


class Student(Person):
    pass


class Teacher(Person):
    pass


class Worker(Person):
    pass


class PersonFactory:
    def get_person(self, p_type):
        if p_type == "w":
            return Worker()
        elif p_type == "s":
            return Student()
        else:
            return Teacher()


factory = PersonFactory()
worker = factory.get_person("w")
stu = factory.get_person("s")
teacher = factory.get_person("t")
